-- *******************************************************************
-- CISCO-LWAPP-REAP-MIB.my
-- April 2007, Devesh Pujari, Prasanna Viswakumar, Srinath Candadai
--   
-- Copyright (c) 2006, 2007 by Cisco Systems, Inc.
-- All rights reserved.
-- *******************************************************************

CISCO-LWAPP-REAP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    TruthValue,
    StorageType,
    RowStatus
        FROM SNMPv2-TC
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    cLWlanConfigEntry,
    cLWlanIndex
        FROM CISCO-LWAPP-WLAN-MIB
    cLApSysMacAddress
        FROM CISCO-LWAPP-AP-MIB
    ciscoMgmt
        FROM CISCO-SMI;


-- ********************************************************************
-- *  MODULE IDENTITY
-- ********************************************************************

ciscoLwappReapMIB MODULE-IDENTITY
    LAST-UPDATED    "200704190000Z"
    ORGANIZATION    "Cisco Systems Inc."
    CONTACT-INFO
            "Cisco Systems,
            Customer Service
            Postal: 170 West Tasman Drive
            San Jose, CA  95134
            USA
            Tel: +1 800 553-NETS

            Email: cs-wnbu-snmp@cisco.com"
    DESCRIPTION
        "This MIB is intended to be implemented on all those
        devices operating as Central Controllers (CC) that
        terminate the Light Weight Access Point Protocol
        tunnel from Light-weight LWAPP Access Points.

        Information represented by this MIB is passed by the
        controller to those Cisco LWAPP APs, that can
        operate in stand-alone mode.  

        The relationship between CC and the LWAPP APs
        can be depicted as follows:

        +......+     +......+     +......+           +......+
        +      +     +      +     +      +           +      +
        +  CC  +     +  CC  +     +  CC  +           +  CC  +
        +      +     +      +     +      +           +      +
        +......+     +......+     +......+           +......+
        ..            .             .                 .
        ..            .             .                 .
        .  .            .             .                 .
        .    .            .             .                 .
        .      .            .             .                 .
        .        .            .             .                 .
        +......+ +......+     +......+      +......+          +......+
        +      + +      +     +      +      +      +          +      +
        +  AP  + +  AP  +     +  AP  +      +  AP  +          +  AP  +
        +      + +      +     +      +      +      +          +      +
        +......+ +......+     +......+      +......+          +......+
        .              .             .                 .
        .  .              .             .                 .
        .    .              .             .                 .
        .      .              .             .                 .
        .        .              .             .                 .
        +......+ +......+     +......+      +......+          +......+
        +      + +      +     +      +      +      +          +      +
        +  MN  + +  MN  +     +  MN  +      +  MN  +          +  MN  +
        +      + +      +     +      +      +      +          +      +
        +......+ +......+     +......+      +......+          +......+


        The LWAPP tunnel exists between the controller and
        the APs.  The MNs communicate with the APs through
        the protocol defined by the 802.11 standard.

        LWAPP APs, upon bootup, discover and join one of the
        controllers and the controller pushes the configuration,
        that includes the WLAN parameters, to the LWAPP APs.
        The APs then encapsulate all the 802.11 frames from
        wireless clients inside LWAPP frames and forward
        the LWAPP frames to the controller.

                           GLOSSARY

        Access Point ( AP )

        An entity that contains an 802.11 medium access
        control ( MAC ) and physical layer ( PHY ) interface
        and provides access to the distribution services via
        the wireless medium for associated clients.  

        LWAPP APs encapsulate all the 802.11 frames in
        LWAPP frames and sends them to the controller to which
        it is logically connected.

        Central Controller ( CC )

        The central entity that terminates the LWAPP protocol
        tunnel from the LWAPP APs.  Throughout this MIB,
        this entity is also referred to as 'controller'.

        Light Weight Access Point Protocol ( LWAPP ) 

        This is a generic protocol that defines the
        communication between the Access Points and the
        Central Controller.

        Mobile Node ( MN )

        A roaming 802.11 wireless device in a wireless
        network associated with an access point.

        Native VLAN ID

        A switch port and/or AP can be configured with a
        'native VLAN ID'.  Untagged or priority-tagged
        frames are implicitly associated with the native
        VLAN ID.  The default native VLAN ID is '1' if
        VLAN tagging is enabled.  The native VLAN ID is '0'
        or 'no VLAN ID' if VLAN tagging is not enabled.

        Remote Edge Access Point ( REAP )

        The LWAPP AP that can also act as a stand-alone AP
        when it loses communication with the controller
        it was associated with.

        When REAP can reach the controller (connected state),
        it gets help from controller to complete client
        authentication. When a controller is not reachable by
        REAP, it goes into standalone state and does client
        authentication by itself.  All data packets from
        clients are either bridged locally (local-switch)
        or forwarded to the controller (central-switch)
        depending on the WLAN configuration.

        Virtual LAN

        VLAN defined in the IEEE 802.1Q VLAN standard
        supports logically segmenting of LAN
        infrastructure into different subnets or
        workgroups so that packets are switched only
        between ports within the same VLAN.

        VLAN ID
        Each VLAN is identified by a 12-bit 'VLAN ID'.
        A VLAN ID of '0' is used to indicate 'no VLAN ID'.
        Valid VLAN IDs range from '1' to '4095'. 

        REFERENCE

        [1] Part 11 Wireless LAN Medium Access Control ( MAC )
        and Physical Layer ( PHY ) Specifications 

        [2] Draft-obara-capwap-lwapp-00.txt, IETF Light 
        Weight Access Point Protocol"
    REVISION        "200704190000Z"
    DESCRIPTION
        "Added  cLReapGroupConfigTable and
        cLReapGroupApConfigTable."
    REVISION        "200604190000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 517 }


ciscoLwappReapMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIB 0 }

ciscoLwappReapMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIB 1 }

ciscoLwappReapMIBConform  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIB 2 }

ciscoLwappReapWlanConfig  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIBObjects 1 }

ciscoLwappReapApConfig  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIBObjects 2 }

ciscoLwappReapGroupConfig  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIBObjects 3 }

-- ********************************************************************
-- WLAN configuration
-- ********************************************************************

cLReapWlanConfigTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLReapWlanConfigEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the WLAN configuration sent by
        the controller to REAPs so that the APs can operate
        in stand-alone mode.

        LWAPP APs operating in REAP mode locally switch 
        the data frames of the associated clients, rather 
        than tunneling them through to the LWAPP controller 
        as LWAPP data packets.  The LWAPP controller
        passes this configuration set to the LWAPP AP during
        the AP initialization so that the AP can operate
        in stand-alone mode when it fails to reach the
        controller.  The configuration is also passed to
        the REAP when they are individually modified through
        separate LWAPP messages.  The REAP updates itself
        with the information received through these LWAPP
        messages.

        This table has a one-to-one relationship with
        cLWlanConfigTable of the CISCO-LWAPP-WLAN-MIB.  There
        exist a row in this table corresponding to each
        row representing a WLAN in cLWlanConfigTable.

        Note that the configuration represented by this 
        table is applicable only for REAPs.  The 
        controller will send this configuration set only to 
        the REAP APs for their operation in standalone
        mode."
    ::= { ciscoLwappReapWlanConfig 1 }

cLReapWlanConfigEntry OBJECT-TYPE
    SYNTAX          CLReapWlanConfigEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents a conceptual row in
        cLReapWlanConfigTable and corresponds to the
        packet switching configuration for a
        particular WLAN."
    AUGMENTS           { cLWlanConfigEntry  } 
 
    ::= { cLReapWlanConfigTable 1 }

CLReapWlanConfigEntry ::= SEQUENCE {
        cLReapWlanEnLocalSwitching TruthValue
}

cLReapWlanEnLocalSwitching OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object indicates the behavior of the REAP
        when switching the data frames of the clients
        associated to it through the WLAN identified
        by cLWlanIndex.

        A value of 'true' indicates that the AP, on which 
        this WLAN is configured, may locally switch the 
        data packets of the clients in the WLAN instead
        of tunneling them to the central controller for
        switching.

        A value of 'false' indicates that the AP should 
        tunnel all the data packets of the wireless clients
        in the WLAN to the central controller for switching.

        Note that the value of 'true' will be effective
        only if the WLAN is configured on a REAP."
    DEFVAL          { false } 
    ::= { cLReapWlanConfigEntry 1 }
 

-- ********************************************************************
-- *    Cisco REAP AP Configuration
-- ********************************************************************

cLReapApConfigTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLReapApConfigEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the VLAN configuration of
        REAPs.

        The agent adds a row to this table corresponding to
        each row representing a REAP in cLApTable of the
        CISCO-LWAPP-AP-MIB.  The agent deletes the row
        either when the AP dissociates from the
        controller or moved out of the remote mode."
    ::= { ciscoLwappReapApConfig 1 }

cLReapApConfigEntry OBJECT-TYPE
    SYNTAX          CLReapApConfigEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents a conceptual row in
        cLReapApConfigTable and corresponds to the
        VLAN configuration of a REAP."
    INDEX           { cLApSysMacAddress } 
    ::= { cLReapApConfigTable 1 }

CLReapApConfigEntry ::= SEQUENCE {
        cLReapApNativeVlanId Unsigned32,
        cLReapApVlanEnable   TruthValue
}

cLReapApNativeVlanId OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4095 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object defines the Native VLAN ID for the
        particular AP identified by cLApSysMacAddress.
        Note that this particular object can be modified 
        through a Set request only if the AP is a REAP.
        The agent is expected to reject the attempt to set
        this object for APs in other modes."
    DEFVAL          { 1 } 
    ::= { cLReapApConfigEntry 1 }

cLReapApVlanEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object indicates the availability of Native
        VLAN configured through cLReapApNativeVlanId on
        this REAP.

        A value of 'true' indicates that the VLAN configured
        as native through cLReapApNativeVlanId is enabled
        on the REAP and that the REAP can reach the
        controller through the native VLAN.

        A value of 'false' indicates that the VLAN configured
        as native through cLReapApNativeVlanId is disabled
        and the REAP can't reach the controller."
    DEFVAL          { false } 
    ::= { cLReapApConfigEntry 2 }
 

-- ********************************************************************
-- *    Cisco REAP WLAN / VLAN Id mapping configuration
-- ********************************************************************

cLReapApVlanIdTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLReapApVlanIdEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table defines the WLAN / VLAN Id mappings to be
        configured for the REAP identified by
        cLApSysMacAddress.

        VLAN Id configured through this table is passed to
        the respective REAP through the 'Add WLAN' LWAPP
        message, sent as part of the 'Configure Response
        message from the controller to the REAP, during
        the initialization of the REAP. The REAP maps
        the VLAN to the particular WLAN to locally switch
        the data packets when those APs are in standalone
        mode.  Thus, the information added through this
        table is applicable for REAPs only.

        VLANs are configured on WLANs for which local
        switching of packets is enabled through
        cLReapWlanEnLocalSwitching.  This means that
        a row is added to this table only if there
        are WLANs available on the controller with
        local switching enabled and the AP is a REAP."
    ::= { ciscoLwappReapApConfig 2 }

cLReapApVlanIdEntry OBJECT-TYPE
    SYNTAX          CLReapApVlanIdEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents a conceptual row that
        corresponds to one WLAN / VLAN Id mapping to 
        be applied to the REAP identified by
        cLApSysMacAddress."
    INDEX           {
                        cLApSysMacAddress,
                        cLWlanIndex
                    } 
    ::= { cLReapApVlanIdTable 1 }

CLReapApVlanIdEntry ::= SEQUENCE {
        cLReapApVlanId Unsigned32
}

cLReapApVlanId OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4095 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object represents the VLAN ID to be mapped
        to the WLAN identified by cLWlanIndex."
    DEFVAL          { 1 } 
    ::= { cLReapApVlanIdEntry 1 }
 

-- ********************************************************************
-- Hybrid REAP Group configuration
-- ********************************************************************

cLReapGroupConfigTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLReapGroupConfigEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the configuration for
        REAPs so that the APs can be configured as a 
        group.
        Entries are added or deleted by the user through
        the use of cLReapGroupRowStatus."
    ::= { ciscoLwappReapGroupConfig 1 }

cLReapGroupConfigEntry OBJECT-TYPE
    SYNTAX          CLReapGroupConfigEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents a conceptual row in
        cLReapGroupConfigTable."
    INDEX           { cLReapGroupName } 
    ::= { cLReapGroupConfigTable 1 }

CLReapGroupConfigEntry ::= SEQUENCE {
        cLReapGroupName                 SnmpAdminString,
        cLReapGroupPrimaryRadiusIndex   Unsigned32,
        cLReapGroupSecondaryRadiusIndex Unsigned32,
        cLReapGroupStorageType          StorageType,
        cLReapGroupRowStatus            RowStatus
}

cLReapGroupName OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object uniquely identifies an entry in
        cLReapGroupConfigTable." 
    ::= { cLReapGroupConfigEntry 1 }

cLReapGroupPrimaryRadiusIndex OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The object represents the value that maps to the
        primary RADIUS server for this group. A value of 0
        indicates that the primary RADIUS server is not
        configured for this group."
    DEFVAL          { 0 } 
    ::= { cLReapGroupConfigEntry 2 }

cLReapGroupSecondaryRadiusIndex OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "The object represents the value that maps to the
        secondary RADIUS server for this group. A value of 0
        indicates that the primary RADIUS server is not
        configured for this group."
    DEFVAL          { 0 } 
    ::= { cLReapGroupConfigEntry 3 }

cLReapGroupStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the storage type for this conceptual
        row." 
    ::= { cLReapGroupConfigEntry 4 }

cLReapGroupRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the status column for a
        conceptual row in this table." 
    ::= { cLReapGroupConfigEntry 5 }
 

-- ********************************************************************
-- Hybrid REAP Group AP configuration
-- ********************************************************************

cLReapGroupApConfigTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CLReapGroupApConfigEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table represents the group associated with
        an AP. Entries are added or deleted by the user 
        through the use of cLReapGroupApRowStatus."
    ::= { ciscoLwappReapGroupConfig 2 }

cLReapGroupApConfigEntry OBJECT-TYPE
    SYNTAX          CLReapGroupApConfigEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents a conceptual row in
        cLReapGroupApConfigTable."
    INDEX           {
                        cLReapGroupName,
                        cLApSysMacAddress
                    } 
    ::= { cLReapGroupApConfigTable 1 }

CLReapGroupApConfigEntry ::= SEQUENCE {
        cLReapGroupApStorageType StorageType,
        cLReapGroupApRowStatus   RowStatus
}

cLReapGroupApStorageType OBJECT-TYPE
    SYNTAX          StorageType
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the storage type for this conceptual
        row." 
    ::= { cLReapGroupApConfigEntry 1 }

cLReapGroupApRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
        "This object represents the status column for a
        conceptual row in this table." 
    ::= { cLReapGroupApConfigEntry 2 }
 

-- ********************************************************************
-- *    Compliance statements
-- ********************************************************************

ciscoLwappReapMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIBConform 1 }

ciscoLwappReapMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoLwappReapMIBConform 2 }


ciscoLwappReapMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for the SNMP entities that
        implement the ciscoLwappReapMIB module."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoLwappReapWlanConfigGroup,
                        ciscoLwappReapApConfigGroup
                    }
    ::= { ciscoLwappReapMIBCompliances 1 }

ciscoLwappReapMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for the SNMP entities that
        implement the ciscoLwappReapMIB module."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoLwappReapWlanConfigGroup,
                        ciscoLwappReapApConfigGroup,
                        ciscoLwappReapGroupConfigGroup
                    }
    ::= { ciscoLwappReapMIBCompliances 2 }

-- ********************************************************************
-- *    Units of conformance
-- ********************************************************************

ciscoLwappReapWlanConfigGroup OBJECT-GROUP
    OBJECTS         { cLReapWlanEnLocalSwitching }
    STATUS          current
    DESCRIPTION
        "This collection of objects represent the WLAN
        configuration to be passed to the REAP."
    ::= { ciscoLwappReapMIBGroups 1 }

ciscoLwappReapApConfigGroup OBJECT-GROUP
    OBJECTS         {
                        cLReapApNativeVlanId,
                        cLReapApVlanId,
                        cLReapApVlanEnable
                    }
    STATUS          current
    DESCRIPTION
        "This collection of objects represent the information
        needed by the REAP AP to locally switch the client
        data packets.  The collection also includes the
        VLAN configuration on the REAP."
    ::= { ciscoLwappReapMIBGroups 2 }

ciscoLwappReapGroupConfigGroup OBJECT-GROUP
    OBJECTS         {
                        cLReapGroupPrimaryRadiusIndex,
                        cLReapGroupSecondaryRadiusIndex,
                        cLReapGroupStorageType,
                        cLReapGroupRowStatus,
                        cLReapGroupApStorageType,
                        cLReapGroupApRowStatus
                    }
    STATUS          current
    DESCRIPTION
        "This collection of objects represent the information
        needed by the REAP APs to configure REAP groups."
    ::= { ciscoLwappReapMIBGroups 3 }

END